草庐IT

c++ - QML Qt openUrlExternally

全部标签

c++ - 如何捕获 C 和 C++ 中的运行时错误?

就像修改一个CONSTint,我可以注册一个特定的函数来处理运行时错误,这样这种操作只会失败而不是终止应用程序吗? 最佳答案 如果您指的是C++,则有一个名为runtime_error的特定异常类。您可以使用catch子句捕获它:catch(std::runtime_error&e){}但是,C和C++中的许多事情(例如修改constint)会导致undefinedbehavior.您无法在运行时捕获它们。您无法捕获它们,因为不会抛出任何异常(从技术上讲,任何事情都可能发生,包括抛出异常(仅限C++),但这不是您可以或应该希望的事情

c++ - 要在我的 C++ 程序中使用 C 代码,我需要做什么特别的事情吗?

注意:我使用g++4.3.4版来编译我的C++代码。到目前为止,每当我想在我的代码中使用C风格的语言元素时,我似乎都可以将C的东西混合在我的C++中并与我的C++一起包含。我知道C++大部分向后兼容C...所以我想我的问题是这些:C的哪些部分与C++不向前兼容?如果我继续天真地将C的东西插入我的C++代码中,专业程序员会mock我吗?在同一个.cpp文件中包含C和C++代码的正确方法是什么?我可以继续使用g++来编译我的混合代码吗?对于这个问题,我主要关注处理单个.cpp文件和单个g++命令来编译它的解决方案。在这一点上,我真的不关心链接内容。 最佳答案

c++ - getch 相当于汇编语言

我在汇编语言中编程,在C++中使用x86,我需要知道汇编语言中的getch等价物而不是C++语言,因为我不想使用C++编程语言中的任何函数。我在网上找到了代码,但它将给定值保存到一个变量中,并在C++中创建。我只想使用该功能来停止程序,直到按下任何键。我不必在进一步的编程中使用输入的键值。 最佳答案 这是一个特定于操作系统的问题。例如,如果您使用的是Linux,则可以像这样发出read系统调用:;Allocatesomestackbuffer...subesp,256moveax,3;3=__NR_readfrommovebx,0;

c++ - CMAKE 链接到系统库

我们想用CMAKE系统构建一个共享库。它是这样的:lib/CMakeLists.txtsrc/CMakeLists.txtmodule/CMakeLists.txtmodule1.cfoo.cmodule1.c需要一些标准共享库,如librt。我们有add_library(modulemodule1.c)target_link_libraries(modulert)在module/子目录中。但仍然会收到来自librt的未知错误。 最佳答案 如果librt与-lrt链接,那么在CMake中您可以这样链接它:target_link_li

c++ - 标记化和 AST

有一个比较抽象的问题要问大家。我正在考虑参与静态代码分析项目。它使用C和C++作为开发语言,因此如果您的回复中有任何代码可以使用这两种语言中的任何一种,那就太好了。我的问题:我需要了解一些用于处理静态分析代码的基本概念/结构。我听说人们使用AST和标记化等东西。我只是想知道是否有什么可以阐明这些东西是如何应用于创建静态分析工具的?我更喜欢对标记化的解释,因为我不太了解它。我知道这是一种处理字符串的方法,但我对这个答案没有信心。此外,我知道我正在查看的项目在分析代码之前通过预处理器传递代码。谁能解释一下?当然如果是静态代码分析就不需要预处理了吗?希望有人能帮我解决这个问题。干杯。

c++ - 两个相同的unordered_maps的顺序是否相同?

换句话说,如果我填充两个unordered_map或unordered_set,对象具有完全相同的内容和相同的散列函数,将迭代它们给出相同的序列键/值对?如果是这样,那么它成立的条件是什么(例如,相同的散列函数、相同的键,不一定是相同的值)。 最佳答案 没有。例如,没有要求以任何特定顺序放置具有相同散列的对象。事实上,一般来说,无序映射不可能做到这一点,因为它唯一可以访问的信息是哈希值。 关于c++-两个相同的unordered_maps的顺序是否相同?,我们在StackOverflow

c++ - 从被调用者的角度来看,如何检测内存是动态的还是静态的?

注意:当我在这里说“静态字符串”时,我指的是realloc无法处理的内存。您好,我已经编写了一个带有char*参数的过程,如果内存无法通过realloc重新定位/调整大小,我想创建一个拷贝。事实上,该过程是一个“繁重”的字符串处理器,因此不管它是否是静态的,无知和复制字符串肯定会在未来导致一些内存开销/处理问题。我曾尝试使用异常处理程序来修改静态字符串,应用程序只是在没有任何通知的情况下退出。我退后一步,看着C说:“我没有印象。”如果我听说过,那将是一个异常(exception)。我尝试使用异常处理程序在静态变量上调用realloc...Glib报告说它找不到结构的一些私有(priva

c++ - 结构/对象内的存储顺序

考虑这两种情况:structcustomType{dataType1var1;dataType2var2;dataType3var3;};customTypeinstance1;//Assumevar1,var2andvar3wereinitializedtosomevalidvalues.customType*instance2=&instance1;dataType1firstMemberInsideStruct=(dataType1)(*instance2);classCustomType{public:dataType1member1;dataType2member2;retr

c++ - C/C++ 中的运算符优先级和关联性

请注意,这与OperatorPrecedence..()and++无关,Undefinedbehaviorandsequencepoints,Whyaretheseconstructs(using++)undefinedbehavior?以及这里的数百个类似问题不久:关联性是否由标准保证?详细示例:来自Wikipedia关于运算符优先级的文章,operator*和operator/具有相同的优先级,它们是从左到右运算符。这是否意味着,标准保证,即:intres=x/y*z/t;将被评估为intres=((x/y)*z)/t;或者它是实现定义的?如果有保证,你能报价吗?出于好奇,我总是在

c++ - 在 if 语句之外使用 ==?

我只见过在if语句中使用“==”。那么“==”在这种情况下是如何工作的呢?a=5;b=(a==18%13); 最佳答案 如果b是一个bool,您可以将表达式的结果赋给它。在这种情况下,如果条件a==18%13成立,b将变为true,否则为false.基本上,a==18%13-wouldyieldb=trueorb=1和a!=18%13-wouldyieldb=falseorb=0取决于b的类型。 关于c++-在if语句之外使用==?,我们在StackOverflow上找到一个类似的问题: